#ifndef _RING_QUEUE_H_
#define _RING_QUEUE_H_
#include "os_config.h"

typedef struct ring_queue* ring_queue_t;

ring_queue_t  ring_queue_new(uint16_t number, int item_size);
void    ring_queue_free(ring_queue_t* queue);
int     ring_queue_push(ring_queue_t queue, void* item, int size);
int     ring_queue_pop(ring_queue_t queue);
int     ring_queue_front(ring_queue_t queue, void* item);
int     ring_queue_back(ring_queue_t queue, void* item);
uint8_t ring_queue_empty(ring_queue_t queue);
uint8_t ring_queue_full(ring_queue_t queue);
void    ring_queue_clear(ring_queue_t queue);
void    ring_queue_printf(ring_queue_t queue);
#endif


